Controller হলো CodeIgniter এর গুরুত্বপূর্ণ উপাদান, যা ইউজার রিকোয়েস্ট গ্রহণ করে, প্রাসঙ্গিক মডেল ও ভিউ লোড করে এবং আউটপুট প্রেরণ করে। CodeIgniter এ MVC (Model-View-Controller) আর্কিটেকচারের অংশ হিসেবে কন্ট্রোলার অ্যাপ্লিকেশনের লজিক পরিচালনা করে।
কন্ট্রোলার তৈরি করার নিয়ম
CodeIgniter এ কন্ট্রোলার একটি PHP ক্লাস, যা CI_Controller-এর সাবক্লাস। প্রতিটি কন্ট্রোলার ফাইল app/Controllers ডিরেক্টরিতে রাখা হয়।
কন্ট্রোলার তৈরির ধাপ
app/Controllersডিরেক্টরিতে যান।- একটি নতুন PHP ফাইল তৈরি করুন (যেমন:
Welcome.php)। - ক্লাসটি
CI_Controllerথেকে এক্সটেন্ড করুন এবংnamespace App\Controllers;ব্যবহার করুন।
উদাহরণ: একটি সাধারণ কন্ট্রোলার
<?php
namespace App\Controllers;
class Welcome extends BaseController
{
public function index()
{
return "Welcome to CodeIgniter!";
}
}
কন্ট্রোলার কনফিগার করা
ডিফল্ট কন্ট্রোলার সেটআপ
CodeIgniter এ ডিফল্ট কন্ট্রোলার সেট করা হয় app/Config/Routes.php ফাইলে।
app/Config/Routes.phpফাইলটি খুলুন।ডিফল্ট কন্ট্রোলার নির্ধারণ করতে:
$routes->setDefaultController('Welcome'); // 'Welcome' ক্লাস ডিফল্ট কন্ট্রোলার
কাস্টম রাউট সেটআপ
কাস্টম URL নির্ধারণ করতে:
$routes->get('about', 'Pages::about'); // 'Pages' ক্লাসের 'about' মেথড
কন্ট্রোলারে মেথড যোগ করা
কন্ট্রোলারে প্রতিটি ফাংশন (মেথড) একটি রিকোয়েস্ট হ্যান্ডল করে। একটি মেথডের মাধ্যমে ডেটা প্রক্রিয়া করা যায় এবং প্রাসঙ্গিক ভিউ প্রদর্শন করা যায়।
উদাহরণ: একাধিক মেথড
<?php
namespace App\Controllers;
class Pages extends BaseController
{
public function home()
{
return view('home'); // 'home' ভিউ লোড
}
public function about()
{
return view('about'); // 'about' ভিউ লোড
}
}
কন্ট্রোলারে মডেল এবং ভিউ লোড করা
মডেল লোড করা
CodeIgniter এর মডেল ব্যবহার করতে কন্ট্রোলারে লোড করতে হয়।
<?php
namespace App\Controllers;
use App\Models\ProductModel;
class Product extends BaseController
{
public function index()
{
$productModel = new ProductModel();
$data['products'] = $productModel->findAll(); // ডাটাবেস থেকে সমস্ত ডেটা আনা
return view('product_list', $data); // ভিউ-এ ডেটা পাঠানো
}
}
ভিউ লোড করা
return view('view_name', $data);
view_nameহলো ভিউ ফাইলের নাম।$dataএকটি অ্যারে, যা ভিউতে ডেটা পাঠায়।
Route এবং URL থেকে কন্ট্রোলার অ্যাক্সেস
কন্ট্রোলারের মেথড অ্যাক্সেস করতে ব্রাউজারে নিচের মতো URL ব্যবহার করুন:
http://localhost/your_project_name/controller_name/method_nameউদাহরণ:
http://localhost/your_project_name/welcome/indexযদি index মেথড ডিফল্ট হয়, তাহলে মেথড নাম না দিলেও কাজ করবে:
http://localhost/your_project_name/welcome
Route এবং Security
Route Middleware ব্যবহার
Middleware ব্যবহার করে কন্ট্রোলারে সিকিউরিটি বা অন্যান্য কার্যক্রম পরিচালনা করা যায়।
$routes->get('admin', 'Admin::index', ['filter' => 'auth']);
Unauthorized Access রোধ
নির্দিষ্ট ফাংশনে এক্সেস নিয়ন্ত্রণ করতে পারেন:
if (!session()->get('isLoggedIn')) {
return redirect()->to('/login');
}
সারসংক্ষেপ
- কন্ট্রোলার তৈরি:
app/Controllersডিরেক্টরিতে নতুন ফাইল তৈরি করুন। - ডিফল্ট কন্ট্রোলার কনফিগার:
Routes.phpফাইলের মাধ্যমে। - মডেল ও ভিউ লোড: ডেটা প্রক্রিয়াকরণ এবং প্রদর্শনের জন্য।
- সিকিউরিটি ব্যবস্থাপনা: Middleware এবং Session ব্যবহার করে।
এই ধাপগুলো অনুসরণ করে আপনি CodeIgniter এ কন্ট্রোলার তৈরি এবং কনফিগার করতে পারবেন।
Read more